package com.genericity.demo10;

import java.lang.reflect.Array;

/**
 * 泛型数组类
 * @param <T>
 */
public class Fruit<T> {
    // 定义一个成员属性
    private T[] array;

    public Fruit(Class<T> cls,int length) {
        // 需要强制转换
        // 通过Array.newInstance 创建泛型数组
        this.array = (T[])Array.newInstance(cls,length);
    }

    /**
     * 数组填充
     * @param index
     * @param item
     */
    public void put(int index,T item) {
        this.array[index] = item;
    }

    /**
     * 数组获取
     * @param index
     * @return
     */
    public T get(int index) {
        return this.array[index];
    }

    /**
     * 获取整个数组
     * @return
     */
    public T[] getArray() {
        return this.array;
    }
}
